package com.jy.wms.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.common.base.SucessException;
import com.jy.wms.dao.SysLogMapper;
import com.jy.wms.pojo.SysLog;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
* @ClassName: SysLogService.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author liyi
* @Date Wed Sep 13 15:46:03 CST 2017
*/

@Service
public class SysLogService extends BaseService<SysLogMapper,SysLog> {

    /**
     * 插入一条记录
     * @param jb    错误级别 0调试 1信息 2警告 3错误 4严重错误
     * @param mk    模块
     * @param an    按钮
     * @param xx    信息
     * @param ycyy  异常原因
     * @param dlm   登录名
     * @param ip    Ip
     * @return
     */
public Integer baseInsert(String jb, String mk, String an, String xx, String ycyy, String dlm, String ip ){
    SysLog entity = new SysLog();
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    entity.setJlsj(sdf.format(new Date()));
    entity.setJb(jb);
    entity.setMk(mk);
    entity.setAn(an);
    entity.setXx(xx);
    entity.setYcyy(ycyy);
    entity.setDlm(dlm);
    entity.setIp(ip);
    entity.setClzt("0");
     return dao.baseInsert( entity );
}

/**
* 插入一条记录（匹配有值的字段）
* @param entity 实体对象
* @return int
*/
public Integer baseInsertSelective(SysLog entity ){
     return dao.baseInsertSelective( entity );
}

/**
* 删除（根据主键ID删除）
* @param id 主键
* @return int
*/
public Integer baseDeleteByPrimaryKey(String id ){
     return dao.baseDeleteByPrimaryKey( id );
}

/**
* 删除（根据ID 批量删除）
* @param idList 主键ID列表
* @return int
*/
public Integer baseDeleteBathPrimaryKeys(List<String> idList ){
     return dao.baseDeleteBathPrimaryKeys( idList );
}

/**
* 分页查询
* @param entity 实体
* @return Page<SysLog>
*/
@BaseServiceDescribe(moduleName = "操作日志",btnName = "分页查询操作日志")
public Page<SysLog> baseSelectPage(SysLog entity )throws Exception {
    try {
        PageHelper.startPage(entity.getPage(),entity.getRows());
        return (Page<SysLog>)dao.baseSelectPage( entity );
    } catch (Exception e) {
        e.printStackTrace();
        throw new ServiceException("查询系统日志",e);
    }
}

/**
* 查询（根据主键ID查询）
* @param id 主键ID
* @return SysLog
*/
@BaseServiceDescribe(moduleName = "操作日志",btnName = "查询唯一操作日志")
public SysLog baseSelectByPrimaryKey(String id )throws Exception {
    try {
        return dao.baseSelectByPrimaryKey( id );
    } catch (Exception e) {
        e.printStackTrace();
        throw new ServiceException("查询唯一操作日志",e);
    }
}

/**
* 查询（根据ID 批量查询）
* @param idList 主键ID列表
* @return list
*/
public Integer baseSelectBathPrimaryKeys(List<SysLog> idList ){
     return dao.baseSelectBathPrimaryKeys( idList );
}

/**
*修改 （匹配有值的字段）
* @param entity 主键ID列表
* @return int
*/
@BaseServiceDescribe(moduleName = "系统日志管理",btnName = "处理信息填写")
public void baseUpdateByPrimaryKeySelective( SysLog entity ) throws Exception {
    try {
         Integer falg = dao.baseUpdateByPrimaryKeySelective( entity );
         if(falg < 1){
             throw new SucessException("修改信息未加入数据库");
         }
    } catch (Exception e) {
        e.printStackTrace();
        throw new ServiceException("处理完成",e);
    }
}

/**
*修改（根据主键ID修改）
* @param entity 主键ID列表
* @return int
*/
public Integer baseUpdateByPrimaryKey(SysLog entity ){
     return dao.baseUpdateByPrimaryKey( entity );
}
}
